I don't know if you problem is already solved, but if it isn't, I might have something that helps you.
I've tested this piece of code:
<?php
Privmsg ("^7DEBUG: " . ToNum( Round( (247 - 130 / 2.86 ),0 ) ) );
?>
Which is nearly the same as you had, except that I put in '130' instead of 'GetUserStoredValue($userName," 1XRT")'
The DEBUG message then said: 202
This is the correct answer as 130 / 2.86 = 45.45454545454545 = rounded to zero decimals: 45
Then 247-45 = 202
So the round function is working correctly, when using a static number, which makes me think that the problem is related to the GetUserStoredValue.
Then I tried this:
<?php
$userName = GetCurrentPlayerVar( "UserName" );
Privmsg ("^7DEBUG: " . ToNum( Round( (247 - GetUserStoredValue($userName," 1XRT") / 2.86 ),0 ) ) );
?>
Still no error about the round function, but I wasn't getting the value '1XRT' either.
After having a close look, I noticed you have a space before 1XRT, so I tried this:
<?php
$userName = GetCurrentPlayerVar( "UserName" );
Privmsg ("^7DEBUG: " . ToNum( Round( (247 - GetUserStoredValue($userName,"1XRT") / 2.86 ),0 ) ) );
?>
Now the DEBUG messages said again: 202
Since I had a problem with numbers being retrieved, while working on the cross-server chat script, I think it would be a good idea to replace GetUserStoredValue with GetUserStoredNum, as that will make sure a number is retrieved from the database.
Hopefully this will help you, otherwise I will be happy to give any assistance.